import { FormItemProps as TFormItemProps } from 'naive-ui';

type OptionProps = {
  value: string | number;
  label: string;
  disabled?: boolean;
};
type CheckboxProps = {
  options?: OptionProps[];
  value?: (string | number)[];
  size?: 'small' | 'medium' | 'large';
  cols?: number;
  max?: number;
  min?: number;
  'on-update:value'?: Function;
};

type RadioProps = {
  options?: OptionProps[];
  value?: string | number;
  size?: 'small' | 'medium' | 'large';
  cols?: number;
  max?: number;
  min?: number;
  type?: 'button' | 'default';
  'on-update:value'?: Function;
};

type FormItemProps = TFormItemProps & { span?: string | number; show?: any; tip?: string };
export type {
  InputProps,
  SelectProps,
  AutoCompleteProps,
  CascaderProps,
  ColorPickerProps,
  DatePickerProps,
  TimePickerProps,
  DynamicInputProps,
  DynamicTagsProps,
  InputNumberProps,
  MentionProps,
  RateProps,
  SliderProps,
  SwitchProps,
  TreeSelectProps,
  ButtonProps
} from 'naive-ui';

export type { CheckboxProps, RadioProps, OptionProps, FormItemProps };
